using System;

namespace Fractal
{
	/// <summary>
	/// Summary description for Calculation.
	/// </summary>
	public class CalculationParameters : ICloneable
	{
        public double left, right, top, bottom;

        public double getWidth() { return right - left; }
        public double getHeight() { return top - bottom; }

        public int pixelWidth, pixelHeight; 
    
        public uint iterations;

        public enum CalculationType { SinglePoint, Interval };
        public CalculationType calculationType;

        public enum FractalType { Mandelbrot, Julia };
        public FractalType fractalType;

        public double juliaReal, juliaImag;

        public bool simpleGrayscale;

        // Interval mode only
        public bool smoothColoring;
        public bool useIterationLimit;

        #region ICloneable Members

        public object Clone()
        {
            return this.MemberwiseClone();
        }

        #endregion
    }
}
